!@CMP2.24 11/01/04 AEGNEMVS6000 FIX SW60IAEG *** \NEW; OUTLEN 80; SECT "- " 1 ******************************************************************************** * * * IF YOU RECEIVE THIS ERROR MESSAGE * * *** ERROR **** (2061) FILE IS NOT A VALID CMD FILE * * CONTACT YOUR ACI REPRESENTATIVE FOR THE MOST RECENT FIX OBJECT * * DO NOT ALTER THIS FIX FILE TO FORCE APPLICATION * * * * THIS COMMAND FILE IS CREATED BY CMP PROGRAM TO BE USED IN FIX PROGRAM. * * THE LINES TO BE ADDED OR REPLACED SHOULD BE LESS THAN 71 CHARACTERS AND * * SHOULD NOT HAVE ANY SEQUENCE NUMBERS AT THE END. * * * * FILE ID VERSION * * OLD FILE: \K9.$ROOK.SW60IAEG.AEGNEMVS AEGNEMVS 6000 * * NEW FILE: \K9.$CHKOUT.SW6DIAEG.AEGNEMVS AEGNEMVS 6000 * ******************************************************************************** #SCN = SW08596 , FILEID = AEGNEMVS #VOLUME = $ROOK.SW60IAEG #FILE = AEGNEMVS #PRODUCTID = SW60IAEG #ENGINEER = *** #LANGUAGE = TAL #VERSION = 6000 #NEWVERSION = 6001 #ADD 00040 ! 15OCT2004 SharmaR ! Symptom: ICC Application PSN ! Problem: None ! Fix: Modified SIM^FRMT^B24^TKN^TO^SEM^EMV to set the APSN to ! "00" in the SEM if the APSN in the EMV Status Token ! contains spaces for Base24 acquired Transactions. ! Modified code to intialise the EMV Status token to ! spaces for Amex acquired transactions. ! Removed code that sets the APSN in the EMV Status Token ! to zeroes when the EMV Data (DE 055) is not present. ! Removed code that initialises CAM-FLAGS and RSN-ONL-CDE ! of the EMV Status Token to spaces. ! Modified Procs: sim^frmt^b24^tkn^to^sem^emv ! sem^frmt^xrqst^emv^to^b24^tkn ! Dependency: Apply fixes to AEGNEMVS, AEGNG, AEGNMM, IAEGMM ! and run MAKE. ! Refer to BA60UD08.SCNICCA for a complete listing of ! dependencies. ! Reference: WO #040214-07 #ADD 00166 SIM^FRMT^B24^TKN^TO^SEM^EMV if emv^stat^tkn.appl^pan^seq^num = " " then begin sem.emv^data^aegn.rqst.appl^pan^seq^num := 0; end else #REPLACE 00167 /00169 SIM^FRMT^B24^TKN^TO^SEM^EMV call hexchar^binary^( emv^stat^tkn.appl^pan^seq^num, sem.emv^data^aegn.rqst. appl^pan^seq^num ); #REPLACE 00469 SEM^FRMT^XRQST^EMV^TO^B24^TKN ! Initialize EMV status token structure to spaces. ! #REPLACE 00471 /00474 SEM^FRMT^XRQST^EMV^TO^B24^TKN tkn^id ':=' emv^stat^tkn^id^d; call tkn^main^convert( tkn^id, pi_base_l, tkn^conv^ascii^to^binary^l, !< in^addr >!, emv^stat^tkn); #DELETE 00543 /00552 SEM^FRMT^XRQST^EMV^TO^B24^TKN #ENDSCN = SW08596 !@CMP2.24 11/01/04 IAEGMM 6000 FIX SW60IAEG *** \NEW; OUTLEN 80; SECT "- " 1 ******************************************************************************** * * * IF YOU RECEIVE THIS ERROR MESSAGE * * *** ERROR **** (2061) FILE IS NOT A VALID CMD FILE * * CONTACT YOUR ACI REPRESENTATIVE FOR THE MOST RECENT FIX OBJECT * * DO NOT ALTER THIS FIX FILE TO FORCE APPLICATION * * * * THIS COMMAND FILE IS CREATED BY CMP PROGRAM TO BE USED IN FIX PROGRAM. * * THE LINES TO BE ADDED OR REPLACED SHOULD BE LESS THAN 71 CHARACTERS AND * * SHOULD NOT HAVE ANY SEQUENCE NUMBERS AT THE END. * * * * FILE ID VERSION * * OLD FILE: \K9.$ROOK.SW60IAEG.IAEGMM IAEGMM 6000 * * NEW FILE: \K9.$CHKOUT.SW6DIAEG.IAEGMM IAEGMM 6000 * ******************************************************************************** #SCN = SW08597 , FILEID = IAEGMM #VOLUME = $ROOK.SW60IAEG #FILE = IAEGMM #PRODUCTID = SW60IAEG #ENGINEER = *** #LANGUAGE = MAKE #VERSION = 6000 #NEWVERSION = 6001 #ADD 0036 # 15OCT2004 SharmaR # Symptom: ICC Application PSN # Problem: None # Fix: Added BASRC_BATKNCVE to the swiaeg_aegnemvs_deps # dependency list. # Dependency: Apply fixes to AEGNEMVS, AEGNG, AEGNMM, IAEGMM # and run MAKE. # Refer to BA60UD08.SCNICCA for a complete listing of # dependencies. # Reference: WO #040214-07 #ADD 0053 $(basrc_batkncve) \ #ENDSCN = SW08597 !@CMP2.24 12/29/04 AEGNEMVS6001 FIX SW60IAEG *** \NEW; OUTLEN 80; SECT "- " 1 ******************************************************************************** * * * IF YOU RECEIVE THIS ERROR MESSAGE * * *** ERROR **** (2061) FILE IS NOT A VALID CMD FILE * * CONTACT YOUR ACI REPRESENTATIVE FOR THE MOST RECENT FIX OBJECT * * DO NOT ALTER THIS FIX FILE TO FORCE APPLICATION * * * * THIS COMMAND FILE IS CREATED BY CMP PROGRAM TO BE USED IN FIX PROGRAM. * * THE LINES TO BE ADDED OR REPLACED SHOULD BE LESS THAN 71 CHARACTERS AND * * SHOULD NOT HAVE ANY SEQUENCE NUMBERS AT THE END. * * * * FILE ID VERSION * * OLD FILE: \K9.$ROOK.SW60IAEG.AEGNEMVS AEGNEMVS 6001 * * NEW FILE: \K9.$CHKOUT.SW6DIAEG.AEGNEMVS AEGNEMVS 6001 * ******************************************************************************** #SCN = SW09116 , FILEID = AEGNEMVS #VOLUME = $ROOK.SW60IAEG #FILE = AEGNEMVS #PRODUCTID = SW60IAEG #ENGINEER = *** #LANGUAGE = TAL #VERSION = 6001 #NEWVERSION = 6002 #ADD 00040A0K ! 28DEC2004 frederr ! Symptom: The interface is denying acquired EMV transactions due ! to a compress failure on field 55 (EMV System Related ! Data). ! Problem: The interface is assuming that issuer script data is ! always sent in the EMV token. Since this data is ! considered optional by the network, the Host may or may ! not send the data in this token. If the data is not ! sent, the interface is not setting the overall length of ! field 55 correctly. This causes the compress failure. ! Fix: Modified the interface to not use issuer script data if ! the length of this EMV token subfield is set to 0. ! Modified Proc: swch^iso^compress^de55. ! Dependency: Apply fixes to AEGNEMVS. Run MAKE. ! Reference: Case #387761. #ADD 01416 SWCH^ISO^COMPRESS^DE55 if sem^.emv^data^aegn.resp.iss^script^data.lgth > 0 then #REPLACE 01417 /01423 SWCH^ISO^COMPRESS^DE55 begin ! ! ! Move in the variable length iss^script^data field ! ! ! mov^lgth := sem^.emv^data^aegn.resp.iss^script^data.lgth + $len( sem^.emv^data^aegn.resp. iss^script^data.lgth ); #REPLACE 01425 /01427 SWCH^ISO^COMPRESS^DE55 movl( ptr[ de55^lgth ], sem^.emv^data^aegn.resp.iss^script^data, mov^lgth ); #REPLACE 01429 /01429 OFFSET 0 SWCH^ISO^COMPRESS^DE55 de55^lgth := de55^lgth + mov^lgth; end; #ENDSCN = SW09116 !@CMP2.24 05/25/05 AEGNEMVS6002 FIX SW60IAEG *** \NEW; OUTLEN 80; SECT "- " 1 ******************************************************************************** * * * IF YOU RECEIVE THIS ERROR MESSAGE * * *** ERROR **** (2061) FILE IS NOT A VALID CMD FILE * * CONTACT YOUR ACI REPRESENTATIVE FOR THE MOST RECENT FIX OBJECT * * DO NOT ALTER THIS FIX FILE TO FORCE APPLICATION * * * * THIS COMMAND FILE IS CREATED BY CMP PROGRAM TO BE USED IN FIX PROGRAM. * * THE LINES TO BE ADDED OR REPLACED SHOULD BE LESS THAN 71 CHARACTERS AND * * SHOULD NOT HAVE ANY SEQUENCE NUMBERS AT THE END. * * * * FILE ID VERSION * * OLD FILE: \K9.$ROOK.SW60IAEG.AEGNEMVS AEGNEMVS 6002 * * NEW FILE: \K9.$CHKOUT.SW6DIAEG.AEGNEMVS AEGNEMVS 6002 * ******************************************************************************** #SCN = SW09398 , FILEID = AEGNEMVS #VOLUME = $ROOK.SW60IAEG #FILE = AEGNEMVS #PRODUCTID = SW60IAEG #ENGINEER = *** #LANGUAGE = TAL #VERSION = 6002 #NEWVERSION = 6003 #ADD 00040B0G ! 25MAY2005 sanderj ! Symptom: AMEX GNS PIN Management and Bit 32 IIF Enhancement. ! Problem: None ! Fix: Added support for AMEX GNS PIN Management and Bit 32 IIF ! enhancement. ! Procs modified: sem^frmt^xrqst^emv^to^b24^tkn ! sim^frmt^b24^tkn^to^sem^emv ! Procs added: sem^frmt^xrqst^emv^to^pin^chng ! stm^frmt^pin^chng^to^sem^emv ! Dependency: BA10SC04 subvolume. New files: ILA0505M, ILA0505R and ! ILA0505S. Run ILF conversion ILA0505. Apply fixes to ! AEGNDDLS, AEGNEMVS, AEGNG, AEGNRSPS, AEGNS, RQAEGNS, ! SCRNAEGN and run MAKE. Replace AEGNLOGM, AEGNMAN and ! AEGNUPDT. ! Reference: WO #041130-04. #ADD 00173 SIM^FRMT^B24^TKN^TO^SEM^EMV if sem.proc^cde^aegn = "96" or sem.proc^cde^aegn = "97" then begin ! ! The EMV Status token is required for pin change/ ! unblock. ! call log^message^( 5096, ! routing code !, @tkn^rtrv^err, net.myname, evt^msg^severity^err^l, @tkn^id, @sem.pan.info, @seq^num, tkn^rslt ); return false; end; #ADD 00355 SIM^FRMT^B24^TKN^TO^SEM^EMV if sem.proc^cde^aegn = "96" or sem.proc^cde^aegn = "97" then begin ! ! The EMV Request token is required for Pin Change/ ! unblock. ! call log^message^( 5098, ! routing code !, @tkn^rtrv^err, net.myname, evt^msg^severity^err^l, @tkn^id, @sem.pan.info, @seq^num, tkn^rslt ); return false; end; #ADD 00377 SIM^FRMT^B24^TKN^TO^SEM^EMV if stm.prod^id = atm^prod^id^d then begin if not stm^frmt^pin^chng^to^sem^emv( sem, stm ) then begin return false; end; end; #ADD 00428 SEM^FRMT^XRQST^EMV^TO^B24^TKN int xresp^error; #ADD 00733 SEM^FRMT^XRQST^EMV^TO^B24^TKN if stm.prod^id = atm^prod^id^d then begin xresp^error := sem^frmt^xrqst^emv^to^pin^chng( sem, stm ); if xresp^error <> xresp^iso^no^err^l then begin return xresp^error; end; end; #ADD 00736 SEM^FRMT^XRQST^EMV^TO^B24^TKN ?section sem^frmt^xrqst^emv^to^pin^chng ?page "sem^frmt^xrqst^emv^to^pin^chng" !##################################################################### !# # !# sem^frmt^xrqst^emv^to^pin^chng # !# # !# This procedure formats the BASE24 ATM internal PIN Change data # !# from the AEGN external message. # !# # !# INPUT PARAMETERS: # !# sem - External authorization response. # !# stm - BASE24 internal message. # !# # !# OUTPUT PARAMETERS: # !# stm - BASE24 internal message. # !# # !# RETURN: # !# error - False if successful. # !# # !##################################################################### int proc sem^frmt^xrqst^emv^to^pin^chng( sem, stm ) extensible; int .sem( sem^aegn^def ); int .stm( stm^def ); begin wlform( noroom, "UNABLE TO ADD TOKEN \\, NO ROOM AVAILABLE. PAN :" ',' " \\\\\\\\\\\\\\\\\\\, SEQ NUM : \\\\\\\\\\\\" ) wlform( err^add^tkn, "ERROR WHILE ATTEMPTING TO ADD TOKEN \\ TO STM " ',' "PAN: \\\\\\\\\\\\\\\\\\\, SEQ NUM:" ',' " \\\\\\\\\\\\ ERROR : #" ) struct .pinc^tkn( pinc^tkn^def ); int epin^lgth := 16; int new^ipin^lgth; int pan^lgth := 28; int .pbit^map := wordaddr( @sem.pbit^map ); int .sbit^map := wordaddr( @sem.sbit^map ); int sec^dev^resp := 0; int tkn^lgth := 0; int tkn^rslt; string err^flg; string .pan[ 0:27 ]; string .tkn^id[ 0:1 ]; ! ! If transaction is not PIN Change then return to calling proc ! to continue processing. ! if sem.proc^cde^aegn <> sem^pin^chng^d then begin return xresp^iso^no^err^l; end; ! ! If DE 53 is not present or DE 53 is present and bit 2 is not ! turned on or DE 55 is not present then return. ! if ( not i92^bit^sec^cntl^info^d or not bit^sec^cntl^pin^d( sem )or not bit^emv^data^d ) then begin return xresp^iso^txn^invalid^l; end; init( pinc^tkn, "00", wlen( pinc^tkn^def ) ); call hiswutil^extract^track2^info( stm.rqst.track2, $len( stm.rqst.track2 ), pan, pan^lgth ); if not util^frmt^ext^pin^to^int^pin( sem.sec^cntl^info^aegn.pin^mgmt.pin, epin^lgth, pan, pan^lgth, pinc^tkn.new^pin^1, new^ipin^lgth, stm.rqst.pin^key, stm.rqst.ansi^ofst, sec^dev^resp, stm.rqst.user^key ) or not integer^ascii^( stm.rqst.pin^size, new^ipin^lgth ) then begin ! ! PIN formatting failed. ! if sec^dev^resp = sanity^chk^err^l then begin if base24^rel^g >= 5 then begin movd( err^flg, err^flg^sanity^d ); call hiswtkn^set^at50^tkn( stm, intrn^msg^lmt^l, $len( stm ), false, ! token length !, err^flg ); end else begin movd( stm.user^fld1, err^flg^sanity^d ); end; end; return xresp^iso^key^sync^err^l; end; ! ! PIN formatting was successful. ! movd( tkn^id, pinc^tkn^id^d ); call integer^ascii^( pinc^tkn.new^pin^size, new^ipin^lgth ); move( pinc^tkn.new^pin^frmt, stm.rqst.pin^frmt ); movd( pinc^tkn.pin^cnt, "1" ); tkn^rslt := tkn^add^info( stm, $len( stm ), intrn^msg^lmt^l, tkn^id, pinc^tkn, $len( pinc^tkn ), ! max^tkn^buf^lgth !, tkn^lgth ); if tkn^rslt then begin if tkn^rslt = over^max^limit^l then begin call log^message^( 5092, ! routing code !, @noroom, net.myname, evt^msg^severity^err^l, @tkn^id, @pan, @stm.seq^num ); return resp^system^error^sem^l; end ! end of over^max^limit^l else begin call log^message^( 5094, ! routing code !, @err^add^tkn, net.myname, evt^msg^severity^err^l, @tkn^id, @pan, @stm.seq^num, tkn^rslt ); call abend^( 5094 ); end; ! end of else of over^max^limit^l end; ! of if tkn^rslt return xresp^iso^no^err^l; end; ! of proc sem^frmt^xrqst^emv^to^pin^chng #ADD 01280 SEM^FRMT^XRQST^EMV^TO^SEM^XRESP ?section stm^frmt^pin^chng^to^sem^emv ?page "stm^frmt^pin^chng^to^sem^emv" !##################################################################### !# # !# stm^frmt^pin^chng^to^sem^emv # !# # !# This procedure validates and formats the BASE24 PIN Change token # !# into the external message format. # !# # !# INPUT PARAMETERS: # !# sem - External authorization response. # !# stm - BASE24 internal message. # !# # !# OUTPUT PARAMETERS: # !# stm - BASE24 internal message. # !# # !# RETURN: # !# true - If successful. # !# false - False if unsuccessful. # !# # !##################################################################### int proc stm^frmt^pin^chng^to^sem^emv( sem, stm ) extensible; int .sem( sem^aegn^def ); int .stm( stm^def ); begin wlform( err^get^tkn, "UNABLE TO RETRIEVE TOKEN \\ " ) int sec^cntl^lgth; int new^epin^lgth; int new^ipin^lgth; int pan^lgth := 28; int .pbit^map := wordaddr( @sem.pbit^map ); int .pinc^tkn( pinc^tkn^def ); int sec^dev^resp := 0; int .sbit^map := wordaddr( @sem.sbit^map ); int tkn^lgth; string err^flg; string .pan[ 0:27 ]; string tkn^id[ 0:1 ]; ! ! If transaction is not PIN Change then return to calling proc ! to continue processing. ! if stm.tran^cde <> stm^pin^chng^d then begin return true; end; tkn^id ':=' pinc^tkn^id^d; if not hiswtkn^get^tkn( stm, tkn^id, @pinc^tkn, tkn^lgth ) then begin call log^message^( 5196, ! routing code !, @err^get^tkn, net.myname, evt^msg^severity^err^l, @tkn^id ); return false; end; sem.sec^cntl^info^aegn.pin^mgmt.bit^map := 0; call hiswutil^extract^track2^info( stm.rqst.track2, $len( stm.rqst.track2 ), pan, pan^lgth ); ! ! Convert PIN from Internal to External format if New PIN has ! been entered (zeroes is a valid PIN) and PIN length is a valid ! numeric. Return an ATM format error if any of these conditions ! are not met or if the conversion fails. ! if pinc^tkn.new^pin^1 = blanks for $len( pinc^tkn.new^pin^1 ) or not ascii^integer^( pinc^tkn.new^pin^size, new^ipin^lgth ) or not util^frmt^int^pin^to^ext^pin( sem.sec^cntl^info^aegn.pin^mgmt.pin, new^epin^lgth, pan, pan^lgth, pinc^tkn.new^pin^1, new^ipin^lgth, stm.rqst.pin^key, pinc^tkn.new^pin^frmt, stm.rqst.ansi^ofst, stm.rqst.pinpad^char, stm.rte.originator, stm.rqst.user^key, sec^dev^resp ) then begin ! ! PIN formatting failed. ! if sec^dev^resp = sanity^chk^err^l then begin if base24^rel^g >= 5 then begin movd( err^flg, err^flg^sanity^d ); call hiswtkn^set^at50^tkn( stm, intrn^msg^lmt^l, $len( stm ), false, ! token length !, err^flg ); end else begin movd( stm.user^fld1, err^flg^sanity^d ); end; end else if sec^dev^resp = invld^pin^lgth^l then begin return false; end; return resp^system^error^l; end; sec^cntl^lgth := new^epin^lgth + $len( sem.sec^cntl^info^aegn. pin^mgmt.bit^map ); call integer^ascii^( sem.sec^cntl^info^aegn.lgth, sec^cntl^lgth ); bit^sec^cntl^pin^d( sem ) := 1; i92^bit^sbit^map^d := 1; i92^bit^sec^cntl^info^d := 1; return true; end; ! of proc stm^frmt^pin^chng^to^sem^emv #ENDSCN = SW09398 !#CMP2.28 05/05/08 AEGNEMVS6003 FIX SW60IAEG *** \NEW; OUTLEN 80; SECT "- " 1 ******************************************************************************** * * * IF YOU RECEIVE THIS ERROR MESSAGE * * *** ERROR **** (2061) FILE IS NOT A VALID CMD FILE * * CONTACT YOUR ACI REPRESENTATIVE FOR THE MOST RECENT FIX OBJECT * * DO NOT ALTER THIS FIX FILE TO FORCE APPLICATION * * * * THIS COMMAND FILE IS CREATED BY CMP PROGRAM TO BE USED IN FIX PROGRAM. * * THE LINES TO BE ADDED OR REPLACED SHOULD BE LESS THAN 71 CHARACTERS AND * * SHOULD NOT HAVE ANY SEQUENCE NUMBERS AT THE END. * * * * FILE ID VERSION * * OLD FILE: \K9.$ROOK.SW60IAEG.AEGNEMVS AEGNEMVS 6003 * * NEW FILE: \K9.$CHKOUT.SW6DIAEG.AEGNEMVS AEGNEMVS 6003 * ******************************************************************************** #SCN = SW0C347 , FILEID = AEGNEMVS #VOLUME = $ROOK.SW60IAEG #FILE = AEGNEMVS #PRODUCTID = SW60IAEG #ENGINEER = *** #LANGUAGE = TAL #VERSION = 6003 #NEWVERSION = 6004 #ADD 00040C0G ! 01MAY2008 engelk ! Symptom: AEGN simulator reports an error with EMV tag 9F10, ! issuer application data (IAD), which was sent without an ! IAD length specifier. ! Problem: The first byte of tag 9F10 is the IAD data length. This ! was originally thought to be the length subfield for the ! data component of tag 9F10. However American Express ! now defines this field as 33 bytes in length (EMV ! defines the data element as variable length up to a ! maximum of 32 bytes). This means that the first byte ! should be a length indicator for the whole field, and ! the "IAD Data Length" should be the first digit of the ! "data" component. ! Fix: Modified the code to appropriately set tag 9F10's IAD ! data length and tag length. ! Procs modified: sim^frmt^b24^tkn^to^sem^emv ! sem^frmt^xrqst^emv^to^b24^tkn ! Dependency: Apply fixes to AEGNDDLS and AEGNEMVS. Run Make. ! Reference: Case #462532 #REPLACE 00309 SIM^FRMT^B24^TKN^TO^SEM^EMV lgth := emv^rqst^tkn.iss^appl^data^lgth; #REPLACE 00318 SIM^FRMT^B24^TKN^TO^SEM^EMV sem.emv^data^aegn.rqst.iss^appl^data.iad^lgth ':=' #DELETE 00319 SIM^FRMT^B24^TKN^TO^SEM^EMV #REPLACE 00320 SIM^FRMT^B24^TKN^TO^SEM^EMV emv^rqst^tkn.aegn^appl^data for lgth; #DELETE 00321 /00322 SIM^FRMT^B24^TKN^TO^SEM^EMV #REPLACE 00419 SEM^FRMT^XRQST^EMV^TO^B24^TKN int aegn^appl^data^lgth; #DELETE 00430 SEM^FRMT^XRQST^EMV^TO^B24^TKN #ADD 00674 SEM^FRMT^XRQST^EMV^TO^B24^TKN aegn^appl^data^lgth := $min( $len( emv^rqst^tkn.iss^appl^data ), sem.emv^data^aegn.rqst.iss^appl^data.lgth ); #DELETE 00675 /00676 SEM^FRMT^XRQST^EMV^TO^B24^TKN #REPLACE 00679 SEM^FRMT^XRQST^EMV^TO^B24^TKN sem.emv^data^aegn.rqst.iss^appl^data.iad^lgth for #ENDSCN = SW0C347 !#CMP2.28 05/28/08 AEGNEMVS6004 FIX SW60IAEG *** \NEW; OUTLEN 80; SECT "- " 1 ******************************************************************************** * * * IF YOU RECEIVE THIS ERROR MESSAGE * * *** ERROR **** (2061) FILE IS NOT A VALID CMD FILE * * CONTACT YOUR ACI REPRESENTATIVE FOR THE MOST RECENT FIX OBJECT * * DO NOT ALTER THIS FIX FILE TO FORCE APPLICATION * * * * THIS COMMAND FILE IS CREATED BY CMP PROGRAM TO BE USED IN FIX PROGRAM. * * THE LINES TO BE ADDED OR REPLACED SHOULD BE LESS THAN 71 CHARACTERS AND * * SHOULD NOT HAVE ANY SEQUENCE NUMBERS AT THE END. * * * * FILE ID VERSION * * OLD FILE: \K9.$ROOK.SW60IAEG.AEGNEMVS AEGNEMVS 6004 * * NEW FILE: \K9.$CHKOUT.SW6DIAEG.AEGNEMVS AEGNEMVS 6004 * ******************************************************************************** #SCN = SW0C368 , FILEID = AEGNEMVS #VOLUME = $ROOK.SW60IAEG #FILE = AEGNEMVS #PRODUCTID = SW60IAEG #ENGINEER = *** #LANGUAGE = TAL #VERSION = 6004 #NEWVERSION = 6005 #ADD 00040D0K ! 27MAY2008 engelk ! Symptom: EMS log message #7040 emitted indicating an external ! message expand failure occurred for field tag 55. ! This log message is followed by log message #7045 ! displaying the log message in error. ! Problem: The DE-55 (EMV data) specific expand routine assumed ! that issuer script data would always be present in a ! SEM response containing EMV data. It is, however, ! optional. Since it was not present, the expand failed. ! Fix: Modified the code to check whether all EMV data was ! expanded prior to attempting to expand issuer script ! data. ! Procs modified: swch^iso^expand^de55 ! Dependency: Apply fix to AEGNEMVS. Run Make. ! Reference: Case #465678 #ADD 01571 SWCH^ISO^EXPAND^DE55 ! ! if buf^ofst equals buf^lgth, issuer script data was not ! included. ! if buf^ofst = buf^lgth then begin return true; end; #ENDSCN = SW0C368 !#CMP2.28 05/30/08 AEGNEMVS6005 FIX SW60IAEG *** \NEW; OUTLEN 80; SECT "- " 1 ******************************************************************************** * * * IF YOU RECEIVE THIS ERROR MESSAGE * * *** ERROR **** (2061) FILE IS NOT A VALID CMD FILE * * CONTACT YOUR ACI REPRESENTATIVE FOR THE MOST RECENT FIX OBJECT * * DO NOT ALTER THIS FIX FILE TO FORCE APPLICATION * * * * THIS COMMAND FILE IS CREATED BY CMP PROGRAM TO BE USED IN FIX PROGRAM. * * THE LINES TO BE ADDED OR REPLACED SHOULD BE LESS THAN 71 CHARACTERS AND * * SHOULD NOT HAVE ANY SEQUENCE NUMBERS AT THE END. * * * * FILE ID VERSION * * OLD FILE: \K9.$ROOK.SW60IAEG.AEGNEMVS AEGNEMVS 6005 * * NEW FILE: \K9.$CHKOUT.SW6DIAEG.AEGNEMVS AEGNEMVS 6005 * ******************************************************************************** #SCN = SW0C375 , FILEID = AEGNEMVS #VOLUME = $ROOK.SW60IAEG #FILE = AEGNEMVS #PRODUCTID = SW60IAEG #ENGINEER = *** #LANGUAGE = TAL #VERSION = 6005 #NEWVERSION = 6006 #ADD 00040E0G ! 29MAY2008 engelk ! Symptom: EMV script (B6) token was added to all internal ATM ! responses when EMV data was included in the original ! request, regardless of whether EMV script data was ! included in the SEM response. ! Problem: The code assumed that issuer script data would always be ! present in a SEM response containing EMV data. It is, ! however, optional. ! Fix: Added code to check for the presence of issuer script ! data in a SEM response prior to adding the issuer script ! (B6) token. ! Procs modified: sem^frmt^xresp^emv^to^b24^tkn ! Dependency: Apply fix to AEGNEMVS. Run Make. ! Reference: Case #466634 #ADD 01124 SEM^FRMT^XRESP^EMV^TO^B24^TKN if sem.emv^data^aegn.resp.iss^script^data = [ $len( sem.emv^data^aegn.resp.iss^script^data ) * [ " " ] ] then begin ! ! No script data in SEM response. ! No need to add EMV script token. ! return true; end; #ENDSCN = SW0C375 !#CMP2.28 09/18/08 AEGNEMVS6006 FIX SW60IAEG *** \NEW; OUTLEN 80; SECT "- " 1 ******************************************************************************** * * * IF YOU RECEIVE THIS ERROR MESSAGE * * *** ERROR **** (2061) FILE IS NOT A VALID CMD FILE * * CONTACT YOUR ACI REPRESENTATIVE FOR THE MOST RECENT FIX OBJECT * * DO NOT ALTER THIS FIX FILE TO FORCE APPLICATION * * * * THIS COMMAND FILE IS CREATED BY CMP PROGRAM TO BE USED IN FIX PROGRAM. * * THE LINES TO BE ADDED OR REPLACED SHOULD BE LESS THAN 71 CHARACTERS AND * * SHOULD NOT HAVE ANY SEQUENCE NUMBERS AT THE END. * * * * FILE ID VERSION * * OLD FILE: \K9.$ROOK.SW60IAEG.AEGNEMVS AEGNEMVS 6006 * * NEW FILE: \K9.$CHKOUT.SW6DIAEG.AEGNEMVS AEGNEMVS 6006 * ******************************************************************************** #SCN = SW0C595 , FILEID = AEGNEMVS #VOLUME = $ROOK.SW60IAEG #FILE = AEGNEMVS #PRODUCTID = SW60IAEG #ENGINEER = *** #LANGUAGE = TAL #VERSION = 6006 #NEWVERSION = 6007 #ADD 00040F0F ! 17SEP2008 engelk ! Symptom: EMV response (B5) token sent to BASE24 contains spaces ! for the issuer authentication data. This is not valid ! data. ! Problem: The interface did not ensure that issuer authentication ! data was available prior to using that data to add the ! EMV response (B5) token to the internal message. ! Fix: Added code to return out of the EMV response (B5) and ! EMV script (B6) token formatting procedure if no issuer ! authentication data was provided by American Express. ! Procs modified: sem^frmt^xresp^emv^to^b24^tkn ! Dependency: Apply fix to AEGNEMVS. Run Make. ! Reference: Case #472949 #ADD 01028 SEM^FRMT^XRESP^EMV^TO^B24^TKN if sem.emv^data^aegn.resp.iss^auth^data.lgth = " " and sem.emv^data^aegn.resp.iss^auth^data.arpc = [ $len( sem.emv^data^aegn.resp.iss^auth^data.arpc ) * [ " " ] ] then begin ! ! transaction failed issuer authentication ! No ARPC or ARPC response code included ! Do not Add B5 (EMV response) token ! return true; end; #ENDSCN = SW0C595 !#CMP2.28 10/29/08 AEGNEMVS6007 FIX SW60IAEG *** \NEW; OUTLEN 80; SECT "- " 1 ******************************************************************************** * * * IF YOU RECEIVE THIS ERROR MESSAGE * * *** ERROR **** (2061) FILE IS NOT A VALID CMD FILE * * CONTACT YOUR ACI REPRESENTATIVE FOR THE MOST RECENT FIX OBJECT * * DO NOT ALTER THIS FIX FILE TO FORCE APPLICATION * * * * THIS COMMAND FILE IS CREATED BY CMP PROGRAM TO BE USED IN FIX PROGRAM. * * THE LINES TO BE ADDED OR REPLACED SHOULD BE LESS THAN 71 CHARACTERS AND * * SHOULD NOT HAVE ANY SEQUENCE NUMBERS AT THE END. * * * * FILE ID VERSION * * OLD FILE: \K9.$ROOK.SW60IAEG.AEGNEMVS AEGNEMVS 6007 * * NEW FILE: \K9.$CHKOUT.SW6DIAEG.AEGNEMVS AEGNEMVS 6007 * ******************************************************************************** #SCN = SW0C648 , FILEID = AEGNEMVS #VOLUME = $ROOK.SW60IAEG #FILE = AEGNEMVS #PRODUCTID = SW60IAEG #ENGINEER = *** #LANGUAGE = TAL #VERSION = 6007 #NEWVERSION = 6008 #ADD 00040G0E ! 30OCT2008 swiftd ! Symptom: AMEX GNS October 2008 Mandate ! Problem: None ! Fix: The interface now supports sending new value 9 ! (Chip fallback; chip cannot be read) in position 7 of ! Bit 22 (POS Data Code) in external messages sent ! outbound from the interface to the network and external ! messages sent inbound to the interface from the network. ! Procs modified: sem^frmt^xresp^emv^to^b24^tkn ! sim^frmt^b24^tkn^to^sem^emv ! Dependency: Apply fix to AEGNEMVS, AEGNG, AEGNRSPS, AEGNS, BAUTILS, ! and OKLIBTS. ! Run Make. Replace AEGNMAN and AEGNUPDT. ! Reference: WO #080618-01 Cases 468042, 470543, 470690, 471416 ! and 472615. #ADD 00166 SIM^FRMT^B24^TKN^TO^SEM^EMV if emv^stat^tkn.last^emv^stat = "1" and emv^stat^tkn.pt^srv^entry^mde = "02" then begin sem.pt^svc^data^cde.crd^data^input^mde ':=' "9"; end; #ADD 00532 SEM^FRMT^XRQST^EMV^TO^B24^TKN if sem.pt^svc^data^cde.crd^data^input^mde = "9" then begin ! ! Chip card fallback ! emv^stat^tkn.last^emv^stat := "1"; emv^stat^tkn.pt^srv^entry^mde.byte[ 0 ] ':=' "02"; end; #ENDSCN = SW0C648 !#CMP2.28 11/26/08 AEGNEMVS6008 FIX SW60IAEG *** \NEW; OUTLEN 80; SECT "- " 1 ******************************************************************************** * * * IF YOU RECEIVE THIS ERROR MESSAGE * * *** ERROR **** (2061) FILE IS NOT A VALID CMD FILE * * CONTACT YOUR ACI REPRESENTATIVE FOR THE MOST RECENT FIX OBJECT * * DO NOT ALTER THIS FIX FILE TO FORCE APPLICATION * * * * THIS COMMAND FILE IS CREATED BY CMP PROGRAM TO BE USED IN FIX PROGRAM. * * THE LINES TO BE ADDED OR REPLACED SHOULD BE LESS THAN 71 CHARACTERS AND * * SHOULD NOT HAVE ANY SEQUENCE NUMBERS AT THE END. * * * * FILE ID VERSION * * OLD FILE: \K9.$ROOK.SW60IAEG.AEGNEMVS AEGNEMVS 6008 * * NEW FILE: \K9.$CHKOUT.SW6DIAEG.AEGNEMVS AEGNEMVS 6008 * ******************************************************************************** #SCN = SW0C685 , FILEID = AEGNEMVS #VOLUME = $ROOK.SW60IAEG #FILE = AEGNEMVS #PRODUCTID = SW60IAEG #ENGINEER = *** #LANGUAGE = TAL #VERSION = 6008 #NEWVERSION = 6009 #ADD 00040H0G ! 26NOV2008 wielerk ! Symptom: Process abends when adding EMV script (B6) token. ! Problem: The interface did not ensure that the token length was ! even before calling tkn^add^info. ! Fix: Added code to ensure the token length is even before ! adding EMV script (B6) token. ! Procs modified: sem^frmt^xresp^emv^to^b24^tkn ! Dependency: Apply fix to AEGNEMVS. Run Make. ! Reference: Case #482703. #ADD 01149 SEM^FRMT^XRESP^EMV^TO^B24^TKN if tkn^add^lgth.< 15 > then begin ! ! A token must end on a word boundary ! increment^d( tkn^add^lgth ); end; #ENDSCN = SW0C685 !#CMP2.28 02/13/09 AEGNEMVS6009 FIX SW60IAEG *** \NEW; OUTLEN 80; SECT "- " 1 ******************************************************************************** * * * IF YOU RECEIVE THIS ERROR MESSAGE * * *** ERROR **** (2061) FILE IS NOT A VALID CMD FILE * * CONTACT YOUR ACI REPRESENTATIVE FOR THE MOST RECENT FIX OBJECT * * DO NOT ALTER THIS FIX FILE TO FORCE APPLICATION * * * * THIS COMMAND FILE IS CREATED BY CMP PROGRAM TO BE USED IN FIX PROGRAM. * * THE LINES TO BE ADDED OR REPLACED SHOULD BE LESS THAN 71 CHARACTERS AND * * SHOULD NOT HAVE ANY SEQUENCE NUMBERS AT THE END. * * * * FILE ID VERSION * * OLD FILE: \K9.$ROOK.SW60IAEG.AEGNEMVS AEGNEMVS 6009 * * NEW FILE: \K9.$CHKOUT.SW6DIAEG.AEGNEMVS AEGNEMVS 6009 * ******************************************************************************** #SCN = SW0D098 , FILEID = AEGNEMVS #VOLUME = $ROOK.SW60IAEG #FILE = AEGNEMVS #PRODUCTID = SW60IAEG #ENGINEER = *** #LANGUAGE = TAL #VERSION = 6009 #NEWVERSION = 6010 #ADD 00040I0A ! 12FEB2009 engelk ! Symptom: POS Entry mode in the EMV Status (B4) token indicated ! card details were chip read when they were mag stripe ! read. ! Problem: The POS Entry mode in the EMV Status token was set based ! upon the SEM Card Data Input Capabilities in P-22 (Point ! of Service Data Code), instead of based upon Card Data ! Input Mode in P-22. ! Fix: Modified the code to use the P-22 Card Data Input Mode ! to set the POS Entry mode in the EMV Status token. ! Procs modified: sem^frmt^xrqst^emv^to^b24^tkn ! Dependency: Apply fix to AEGNEMVS. Run Make. ! Reference: Case #483789 #REPLACE 00481 /00482 SEM^FRMT^XRQST^EMV^TO^B24^TKN sem.pt^svc^data^cde.crd^data^input^mde for $len( sem.pt^svc^data^cde.crd^data^input^mde ); if sem.pt^svc^data^cde.crd^data^input^mde = "9" then begin ! ! Chipcard Fallback. Chip cannot be read. ! movd( emv^stat^tkn.pt^srv^entry^mde, "02" ); end else if sem.pt^svc^data^cde.crd^data^input^mde = "W" then begin ! ! Magnetic stripe read and PCSC key-entered at Point of Sale ! movd( emv^stat^tkn.pt^srv^entry^mde, "02" ); end else if sem.pt^svc^data^cde.crd^data^input^mde = "6" or sem.pt^svc^data^cde.crd^data^input^mde = "S" then begin ! ! Key entered or ! Keyed Card Account Number and Keyed PCSC key-entered at POS ! movd( emv^stat^tkn.pt^srv^entry^mde, "01" ); end else if sem.pt^svc^data^cde.crd^data^input^mde <> "0" and sem.pt^svc^data^cde.crd^data^input^mde <> "1" and sem.pt^svc^data^cde.crd^data^input^mde <> "2" and sem.pt^svc^data^cde.crd^data^input^mde <> "3" and sem.pt^svc^data^cde.crd^data^input^mde <> "4" and sem.pt^svc^data^cde.crd^data^input^mde <> "5" then begin movd( emv^stat^tkn.pt^srv^entry^mde, "00" ); end; #ENDSCN = SW0D098 !#CMP2.28 04/07/10 AEGNEMVS6010 FIX SW60IAEG *** \NEW; OUTLEN 80; SECT "- " 1 ******************************************************************************** * * * IF YOU RECEIVE THIS ERROR MESSAGE * * *** ERROR **** (2061) FILE IS NOT A VALID CMD FILE * * CONTACT YOUR ACI REPRESENTATIVE FOR THE MOST RECENT FIX OBJECT * * DO NOT ALTER THIS FIX FILE TO FORCE APPLICATION * * * * THIS COMMAND FILE IS CREATED BY CMP PROGRAM TO BE USED IN FIX PROGRAM. * * THE LINES TO BE ADDED OR REPLACED SHOULD BE LESS THAN 71 CHARACTERS AND * * SHOULD NOT HAVE ANY SEQUENCE NUMBERS AT THE END. * * * * FILE ID VERSION * * OLD FILE: \K9.$ROOK.SW60IAEG.AEGNEMVS AEGNEMVS 6010 * * NEW FILE: \K9.$CHKOUT.SW6DIAEG.AEGNEMVS AEGNEMVS 6010 * ******************************************************************************** #SCN = SW0E112 , FILEID = AEGNEMVS #VOLUME = $ROOK.SW60IAEG #FILE = AEGNEMVS #PRODUCTID = SW60IAEG #ENGINEER = *** #LANGUAGE = TAL #VERSION = 6010 #NEWVERSION = 6011 #ADD 00040J0E ! 07APR2010 engelk ! Symptom: DE-22 subfield 7, card data input mode, was set ! incorrectly for manually entered POS transactions. ! Problem: This EMV module overlaid DE-22 subfield 7 with the EMV ! status token's point of service entry mode. Since the ! EMV status token's values are limited, this module ! should only update DE-22 subfield 7 if an EMV specific ! value should be used. ! Fix: Removed code which arbitrarily overlaid DE-22 subfield 7 ! with the value from the EMV status token. Code is ! present, however, to adjust this field to contain '9' ! for a fallback transaction. ! Procs modified: sim^frmt^b24^tkn^to^sem^emv ! Dependency: Apply fix to AEGNEMVS and run Make. ! Reference: Case #01072030 #DELETE 00162 /00166 SIM^FRMT^B24^TKN^TO^SEM^EMV #ENDSCN = SW0E112 !#CMP2.28 03/17/11 AEGNEMVS6011 FIX SW60IAEG *** \NEW; OUTLEN 80; SECT "- " 1 ******************************************************************************** * * * IF YOU RECEIVE THIS ERROR MESSAGE * * *** ERROR **** (2061) FILE IS NOT A VALID CMD FILE * * CONTACT YOUR ACI REPRESENTATIVE FOR THE MOST RECENT FIX OBJECT * * DO NOT ALTER THIS FIX FILE TO FORCE APPLICATION * * * * THIS COMMAND FILE IS CREATED BY CMP PROGRAM TO BE USED IN FIX PROGRAM. * * THE LINES TO BE ADDED OR REPLACED SHOULD BE LESS THAN 71 CHARACTERS AND * * SHOULD NOT HAVE ANY SEQUENCE NUMBERS AT THE END. * * * * FILE ID VERSION * * OLD FILE: \K9.$ROOK.SW60IAEG.AEGNEMVS AEGNEMVS 6011 * * NEW FILE: \K9.$CHKOUT.SW6DIAEG.AEGNEMVS AEGNEMVS 6011 * ******************************************************************************** #SCN = SW0F052 , FILEID = AEGNEMVS #VOLUME = $ROOK.SW60IAEG #FILE = AEGNEMVS #PRODUCTID = SW60IAEG #ENGINEER = *** #LANGUAGE = TAL #VERSION = 6011 #NEWVERSION = 6012 #ADD 00040K0G ! 17MAR2011 saderc ! Symptom: DE 22 subfield 7, card data input mode, was set ! incorrectly for chip-read (ICC) ATM transactions. ! Problem: The fix applied for Case #1072030 removed the code that ! set position 7 of DE 22 from the POS Entry Mode in the ! EMV Status Token (B4). This change was necessary for POS ! because there is logic in AEGNS that works out the most ! appropriate setting for position 7 of DE 22 based on ! the POS Entry Mode field in the PSTM, and the code in ! AEGNEMVS was overwriting that setting. For ATM ! transactions, however, there is no equivalent logic in ! AEGNS because there is no POS Entry Mode field in the ! STM, so the code removed was required for ATM ! transactions. ! Fix: Re-added the logic to set position 7 of DE 22 from the ! POS Entry Mode field in the EMV Status Token, but ! ensure that it applies only to chip-read transactions. ! Procs modified: sim^frmt^b24^tkn^to^sem^emv ! Dependency: Apply fix to AEGNEMVS. Run Make. ! Reference: Case #1120849 #ADD 00162K02 SIM^FRMT^B24^TKN^TO^SEM^EMV if emv^stat^tkn.pt^srv^entry^mde = "05" then begin movl( sem.pt^svc^data^cde.crd^data^input^mde, emv^stat^tkn.pt^srv^entry^mde.byte[ 1 ], $len( sem.pt^svc^data^cde.crd^data^input^mde) ); end else #ENDSCN = SW0F052 !#CMP2.28 07/20/12 AEGNEMVS6012 FIX SW60IAEG *** \NEW; OUTLEN 80; SECT "- " 1 ******************************************************************************** * * * IF YOU RECEIVE THIS ERROR MESSAGE * * *** ERROR **** (2061) FILE IS NOT A VALID CMD FILE * * CONTACT YOUR ACI REPRESENTATIVE FOR THE MOST RECENT FIX OBJECT * * DO NOT ALTER THIS FIX FILE TO FORCE APPLICATION * * * * THIS COMMAND FILE IS CREATED BY CMP PROGRAM TO BE USED IN FIX PROGRAM. * * THE LINES TO BE ADDED OR REPLACED SHOULD BE LESS THAN 71 CHARACTERS AND * * SHOULD NOT HAVE ANY SEQUENCE NUMBERS AT THE END. * * * * FILE ID VERSION * * OLD FILE: \K9.$ROOK.SW60IAEG.AEGNEMVS AEGNEMVS 6012 * * NEW FILE: \K9.$CHKOUT.SW6DIAEG.AEGNEMVS AEGNEMVS 6012 * ******************************************************************************** #SCN = SW0G217 , FILEID = AEGNEMVS #VOLUME = $ROOK.SW60IAEG #FILE = AEGNEMVS #PRODUCTID = SW60IAEG #ENGINEER = *** #LANGUAGE = TAL #VERSION = 6012 #NEWVERSION = 6013 #ADD 00040L0L ! 23JUL2012 saderc ! Symptom: AMEX 1100 request messages are failing the expand of ! DE 55 (EMV System-Related Data). ! Problem: There are some 1100 request messages that are failing ! the expand of DE 55. Currently, the AEGN interface uses ! a fixed format to parse the external message and format ! the SEM with the data in DE 55. According to the GNS ! Network Specifications manual (April 2012), this format ! was changed to add additional data after subfield 16 ! (Cryptogram Information Data). ! Fix: The AEGN interface was modified to process the 16 ! defined subfields, and then use the length indicator for ! DE 55 to "skip over" any remaining EMV data. ! Proc modified: swch^iso^expand^de55 ! Dependency: Apply fix to AEGNEMVS. Run Make. ! Reference: Case #1215141 #ADD 01550 SWCH^ISO^EXPAND^DE55 ! ! The buffer may contain additional data after subfield 16. ! If so, skip the data and adjust the buffer offset. ! if buf^ofst < buf^lgth then begin buf^ofst := buf^lgth; end; #ENDSCN = SW0G217 !#CMP2.28 08/23/12 AEGNEMVS6013 FIX SW60IAEG *** \NEW; OUTLEN 80; SECT "- " 1 ******************************************************************************** * * * IF YOU RECEIVE THIS ERROR MESSAGE * * *** ERROR **** (2061) FILE IS NOT A VALID CMD FILE * * CONTACT YOUR ACI REPRESENTATIVE FOR THE MOST RECENT FIX OBJECT * * DO NOT ALTER THIS FIX FILE TO FORCE APPLICATION * * * * THIS COMMAND FILE IS CREATED BY CMP PROGRAM TO BE USED IN FIX PROGRAM. * * THE LINES TO BE ADDED OR REPLACED SHOULD BE LESS THAN 71 CHARACTERS AND * * SHOULD NOT HAVE ANY SEQUENCE NUMBERS AT THE END. * * * * FILE ID VERSION * * OLD FILE: \K9.$ROOK.SW60IAEG.AEGNEMVS AEGNEMVS 6013 * * NEW FILE: \K9.$CHKOUT.SW6DIAEG.AEGNEMVS AEGNEMVS 6013 * ******************************************************************************** #SCN = SW0G266 , FILEID = AEGNEMVS #VOLUME = $ROOK.SW60IAEG #FILE = AEGNEMVS #PRODUCTID = SW60IAEG #ENGINEER = *** #LANGUAGE = TAL #VERSION = 6013 #NEWVERSION = 6014 #ADD 00040M0H ! 23AUG2012 saderc ! Symptom: The interface fails to expand the Request Type ! Identifier FD3 for DE 62 (Reserved 62 Private AEGN). ! Problem: The interface does not support the new Request Type ! Identifier FD3 for DE 62. ! Fix: The interface was modified to format the arqc^vrfy field ! in the EMV Status Token (B4) when DE 62.5 (AEIPS ! Cryptogram Validation) is present. ! Procs modified: sem^frmt^xrqst^emv^to^b24^tkn ! Dependency: Apply fixes to AEGNDDLS, AEGNS and AEGNEMVS. Run Make. ! Reference: Case #1217922 #ADD 00554 SEM^FRMT^XRQST^EMV^TO^B24^TKN ! ! Set the arqc^vrfy field in the EMV Status token, if ! DE 62.5 is present. ! if sem.rsrvd^62^prvt^aegn.info = "AXFD3" and sem.rsrvd^62^prvt^aegn.fraud^inds^var. bit^map.byte[ 0 ].<12> then begin if sem.rsrvd^62^prvt^aegn.fraud^inds^var. aeips^crypto^valid = "00" then begin emv^stat^tkn.arqc^vrfy ':=' "2"; end else begin emv^stat^tkn.arqc^vrfy ':=' "1"; end end; #ENDSCN = SW0G266 !#CMP2.28 01/21/13 AEGNEMVS6014 FIX SW60IAEG *** \NEW; OUTLEN 80; SECT "- " 1 ******************************************************************************** * * * IF YOU RECEIVE THIS ERROR MESSAGE * * *** ERROR **** (2061) FILE IS NOT A VALID CMD FILE * * CONTACT YOUR ACI REPRESENTATIVE FOR THE MOST RECENT FIX OBJECT * * DO NOT ALTER THIS FIX FILE TO FORCE APPLICATION * * * * THIS COMMAND FILE IS CREATED BY CMP PROGRAM TO BE USED IN FIX PROGRAM. * * THE LINES TO BE ADDED OR REPLACED SHOULD BE LESS THAN 71 CHARACTERS AND * * SHOULD NOT HAVE ANY SEQUENCE NUMBERS AT THE END. * * * * FILE ID VERSION * * OLD FILE: \K9.$ROOK.SW60IAEG.AEGNEMVS AEGNEMVS 6014 * * NEW FILE: \K9.$CHKOUT.SW6DIAEG.AEGNEMVS AEGNEMVS 6014 * ******************************************************************************** #SCN = SW0H014 , FILEID = AEGNEMVS #VOLUME = $ROOK.SW60IAEG #FILE = AEGNEMVS #PRODUCTID = SW60IAEG #ENGINEER = *** #LANGUAGE = TAL #VERSION = 6014 #NEWVERSION = 6015 #ADD 00040N0C ! 21JAN2013 wielerk ! Symptom: The interface is not setting pt^srv^entry^mde in the ! EMV stat token correctly. ! Problem: The interface was using de-22 to determine how to set ! pt^srv^entry^mde in the EMV token. ! Fix: Modified logic to set pt^srv^entry^mde by product and ! use PSTM.PT^SRV^ENTRY^MDDE or de-22.1 ( crd data input ! mde ) for ATM. ! Procs modified: sem^frmt^xrqst^emv^to^b24^tkn ! Dependency: Apply fixes to AEGNEMVS and SW60AEGN.AEGNS. Run Make. ! Reference: Case #1240071. #ADD 00477 SEM^FRMT^XRQST^EMV^TO^B24^TKN if stm.prod^id = atm^prod^id^d then begin if sem.pt^svc^data^cde.crd^data^input^mde = "5" then begin emv^stat^tkn.pt^srv^entry^mde ':=' "051"; end else begin emv^stat^tkn.pt^srv^entry^mde ':=' "021"; end; end; if pstm.prod^id = pos^prod^id^d then begin move( emv^stat^tkn.pt^srv^entry^mde, pstm.pt^srv^entry^mde ); end; #DELETE 00478 /00514 SEM^FRMT^XRQST^EMV^TO^B24^TKN #DELETE 00532H07 SEM^FRMT^XRQST^EMV^TO^B24^TKN #ENDSCN = SW0H014 !#CMP2.28 03/01/13 AEGNEMVS6015 FIX SW60IAEG *** \NEW; OUTLEN 80; SECT "- " 1 ******************************************************************************** * * * IF YOU RECEIVE THIS ERROR MESSAGE * * *** ERROR **** (2061) FILE IS NOT A VALID CMD FILE * * CONTACT YOUR ACI REPRESENTATIVE FOR THE MOST RECENT FIX OBJECT * * DO NOT ALTER THIS FIX FILE TO FORCE APPLICATION * * * * THIS COMMAND FILE IS CREATED BY CMP PROGRAM TO BE USED IN FIX PROGRAM. * * THE LINES TO BE ADDED OR REPLACED SHOULD BE LESS THAN 71 CHARACTERS AND * * SHOULD NOT HAVE ANY SEQUENCE NUMBERS AT THE END. * * * * FILE ID VERSION * * OLD FILE: \K9.$ROOK.SW60IAEG.AEGNEMVS AEGNEMVS 6015 * * NEW FILE: \K9.$CHKOUT.SW6DIAEG.AEGNEMVS AEGNEMVS 6015 * ******************************************************************************** #SCN = SW0H077 , FILEID = AEGNEMVS #VOLUME = $ROOK.SW60IAEG #FILE = AEGNEMVS #PRODUCTID = SW60IAEG #ENGINEER = *** #LANGUAGE = TAL #VERSION = 6015 #NEWVERSION = 6016 #ADD 00040O0C ! 01MAR2013 wielerk ! Symptom: Interface is not supporting some "on-behalf" services ! provided by American Express. ! Problem: The interface was not recognizing a value of "15" in ! DE-62.1 ( rsrvd^62^prvt^aegn.srvc^ind ). ! The interface was not processing 3 subfields that can ! be included in DE-55 ( EMV data ). ! The EMV data is available for issuers that participate ! in AEIPS Cryptogram Validation. ! Fix: Modified logic to expand the new subfields in DE-55 ! and to add the EMV Response token if present. ! Modified logic to trace new subfields in DE-55. ! Procs modified: sem^frmt^xrqst^emv^to^b24^tkn ! sem^frmt^xrqst^emv^to^sem^xresp ! swch^iso^expand^de55 ! swch^iso^trace^de55 ! Dependency: Apply fixes to AEGNEMVS, SW60AEGN.AEGNS, ! SW60AEGN.AEGND and SW60AEGN.AEGNDDLS. Run Make. ! Reference: Case #1242235. #REPLACE 00416 SEM^FRMT^XRQST^EMV^TO^B24^TKN struct .emv^resp^tkn( emv^resp^tkn^def ); #ADD 00554N0E SEM^FRMT^XRQST^EMV^TO^B24^TKN if sem.rsrvd^62^prvt^aegn.fraud^inds^var. aeips^crypto^valid = "01" then #ADD 00733 SEM^FRMT^XRQST^EMV^TO^B24^TKN if sem.emv^data^aegn.rqst.crypto^rslt = "AGNS" then begin init( emv^resp^tkn, 0, wlen( emv^resp^tkn ) ); ! ! Set the data fields in EMV Response token ! emv^resp^tkn.iss^auth^data^lgth.<8:15> := sem.emv^data^aegn.rqst.crypto^rslt.arpc^data.lgth; movl( emv^resp^tkn.iss^auth^data, sem.emv^data^aegn.rqst.crypto^rslt.arpc^data.arpc, emv^resp^tkn.iss^auth^data^lgth ); emv^resp^tkn.send^crd^blk := "N"; emv^resp^tkn.send^put^data := "N"; ! ! Add the EMV Response token to the internal message ! tkn^id ':=' emv^resp^tkn^id^d; tkn^rslt := tkn^add^info( sim, strt^tkn^buf, max^msg^lgth^l, tkn^id, emv^resp^tkn, $len( emv^resp^tkn ), ! max^tkn^buf^lgth !, tkn^lgth, false, ! tkn^ebcdic^flg !, pos^userdata ); if tkn^rslt then begin if tkn^rslt = over^max^limit^l then begin call log^message^( 5069, ! routing code !, @no^room^tkn, net.myname, evt_msg_severity_err_l, @tkn^id, @sem.pan.info, @seq^num ); return false; end; ! ! If any other token add error encountered log a message ! and abend ! call log^message^( 5072, ! routing code !, @err^add^tkn, net.myname, evt_msg_severity_crit_l, @tkn^id, @sem.pan.info, @seq^num, tkn^rslt ); call abend^( 5072 ); end; end; ! of ARPC present in request #DELETE 00733C00 SEM^FRMT^XRQST^EMV^TO^B24^TKN #REPLACE 01253 /01255 SEM^FRMT^XRQST^EMV^TO^SEM^XRESP int proc sem^frmt^xrqst^emv^to^sem^xresp( xrqst, xresp ); int .xrqst( sem^aegn^def ); int .xresp( sem^aegn^def ); #REPLACE 01258 SEM^FRMT^XRQST^EMV^TO^SEM^XRESP int .pbit^map := wordaddr( @xresp.pbit^map ); #ADD 01271 SEM^FRMT^XRQST^EMV^TO^SEM^XRESP emv^data^lgth := $len( xresp.emv^data^aegn.ver^hdr ) + $len( xresp.emv^data^aegn.bin^ver^num ); if xrqst.emv^data^aegn.rqst.crypto^rslt = "AGNS" then begin init( xresp.emv^data^aegn.resp, 0, wlen( xresp.emv^data^aegn.resp ) ); xresp.emv^data^aegn.resp.iss^auth^data.lgth := xrqst.emv^data^aegn.rqst.crypto^rslt.arpc^data.lgth; movl( xresp.emv^data^aegn.resp.iss^auth^data.arpc, xrqst.emv^data^aegn.rqst.crypto^rslt.arpc^data.arpc, $len( xresp.emv^data^aegn.resp.iss^auth^data.arpc ) ); movl( xresp.emv^data^aegn.resp.iss^auth^data.arpc^resp^cde, xrqst.emv^data^aegn.rqst.crypto^rslt.arpc^data.resp^cde, $len( xresp.emv^data^aegn.resp.iss^auth^data. arpc^resp^cde ) ); emv^data^lgth := emv^data^lgth + $len( xresp.emv^data^aegn.resp.iss^auth^data.lgth ) + xresp.emv^data^aegn.resp.iss^auth^data.lgth; end; #DELETE 01272 /01275 SEM^FRMT^XRQST^EMV^TO^SEM^XRESP #REPLACE 01276 SEM^FRMT^XRQST^EMV^TO^SEM^XRESP call integer^ascii^( xresp.emv^data^aegn.lgth, #ADD 01550 SWCH^ISO^EXPAND^DE55 if buf^ofst < buf^lgth then begin ! ! Subfields 17-19 contain on-behalf results ! call translate( buf[ buf^ofst ], $len( sem^.emv^data^aegn.rqst.crypto^rslt. ver^hdr ), 1 ); mov^lgth := $len( sem^.emv^data^aegn.rqst.crypto^rslt. ver^hdr ) + $len( sem^.emv^data^aegn.rqst.crypto^rslt. bin^ver^num ); movl( sem^.emv^data^aegn.rqst.crypto^rslt.ver^hdr, buf[ buf^ofst ], mov^lgth ); buf^ofst := buf^ofst + mov^lgth; mov^lgth := $len( sem^.emv^data^aegn.rqst.crypto^rslt. arpc^data.lgth ); movl( sem^.emv^data^aegn.rqst.crypto^rslt. arpc^data.lgth, buf[ buf^ofst ], mov^lgth ); buf^ofst := buf^ofst + mov^lgth; mov^lgth := $len( sem^.emv^data^aegn.rqst.crypto^rslt. arpc^data.arpc ); movl( sem^.emv^data^aegn.rqst.crypto^rslt.arpc^data.arpc, buf[ buf^ofst ], mov^lgth ); buf^ofst := buf^ofst + mov^lgth; mov^lgth := $len( sem^.emv^data^aegn.rqst.crypto^rslt. arpc^data.resp^cde ); movl( sem^.emv^data^aegn.rqst.crypto^rslt. arpc^data.resp^cde, buf[ buf^ofst ], mov^lgth ); buf^ofst := buf^lgth; end; #REPLACE 01550M02 SWCH^ISO^EXPAND^DE55 ! The buffer may contain additional data after subfield 19. ! #ADD 01725 SWCH^ISO^TRACE^DE55 if sem^.emv^data^aegn.rqst.crypto^rslt = "AGNS" then begin mov^lgth := $len( sem^.emv^data^aegn.rqst. crypto^rslt.ver^hdr ); buf[ buf^lgth ] ':=' sem^.emv^data^aegn.rqst.crypto^rslt.ver^hdr for mov^lgth; buf^lgth := buf^lgth + mov^lgth; mov^lgth := $len( sem^.emv^data^aegn.rqst.crypto^rslt. bin^ver^num ); mov^lgth := mov^lgth * 2; call binary^hexchar( buf[ buf^lgth ], mov^lgth, sem^.emv^data^aegn.rqst.crypto^rslt.bin^ver^num ); buf^lgth := buf^lgth + mov^lgth; mov^lgth := $len( sem^.emv^data^aegn.rqst.crypto^rslt. arpc^data.lgth ); mov^lgth := mov^lgth * 2; call binary^hexchar( buf[ buf^lgth ], mov^lgth, sem^.emv^data^aegn.rqst.crypto^rslt.arpc^data.lgth ); buf^lgth := buf^lgth + mov^lgth; mov^lgth := $len( sem^.emv^data^aegn.rqst.crypto^rslt. arpc^data.arpc ); mov^lgth := mov^lgth * 2; call binary^hexchar( buf[ buf^lgth ], mov^lgth, sem^.emv^data^aegn.rqst.crypto^rslt.arpc^data.arpc ); buf^lgth := buf^lgth + mov^lgth; mov^lgth := $len( sem^.emv^data^aegn.rqst.crypto^rslt. arpc^data.resp^cde ); call binary^hexchar( buf[ buf^lgth ], mov^lgth, sem^.emv^data^aegn.rqst.crypto^rslt.arpc^data. resp^cde ); buf^lgth := buf^lgth + mov^lgth; end; ! of if de-55.17 to de-55.19 #ENDSCN = SW0H077 !#CMP2.28 01/28/15 AEGNEMVS6016 FIX SW60IAEG *** \NEW; OUTLEN 80; SECT "- " 1 ******************************************************************************** * * * IF YOU RECEIVE THIS ERROR MESSAGE * * *** ERROR **** (2061) FILE IS NOT A VALID CMD FILE * * CONTACT YOUR ACI REPRESENTATIVE FOR THE MOST RECENT FIX OBJECT * * DO NOT ALTER THIS FIX FILE TO FORCE APPLICATION * * * * THIS COMMAND FILE IS CREATED BY CMP PROGRAM TO BE USED IN FIX PROGRAM. * * THE LINES TO BE ADDED OR REPLACED SHOULD BE LESS THAN 71 CHARACTERS AND * * SHOULD NOT HAVE ANY SEQUENCE NUMBERS AT THE END. * * * * FILE ID VERSION * * OLD FILE: \K9.$ROOK.SW60IAEG.AEGNEMVS AEGNEMVS 6016 * * NEW FILE: \K9.$CHKOUT.SW6DIAEG.AEGNEMVS AEGNEMVS 6016 * ******************************************************************************** #SCN = SW0J007 , FILEID = AEGNEMVS #VOLUME = $ROOK.SW60IAEG #FILE = AEGNEMVS #PRODUCTID = SW60IAEG #ENGINEER = *** #LANGUAGE = TAL #VERSION = 6016 #NEWVERSION = 6017 #ADD 00040P0K ! 26JAN2015 GadiA ! Symptom: BASE24 AMEX GNS April 2015 Enhancements. ! Problem: None. ! Fix: 1. Network Specifications :- ! The interface was enhanced in its ATM issuer ! processing to support the FD3 Request Type in bit 62 ! for all 1200 messages received inbound from the ! network, in the same manner as 1100 messages. ! The interface was also enhanced to support the new ! "downgrade" codes for the AEIPS and Expresspay ! Cryptogram Validation Result subfield. ! 2. Codes Reference Guide :- ! The interface was enhanced in its POS acquirer and ! issuer processing to support the new bit 22 values ! required for the "Online PIN Cardholder Verification ! Method" enhancement. ! The interface processing was also enhanced to ensure ! that the codes mappings between the internal message ! and the external message are appropriate. ! The interface was also enhanced to set the indicators ! in bit 22 from values in the Point of Service Data ! Token (Token ID = "C4") and vice versa. ! 3. MCC Mapping (Case #01815186) :- ! The interface was enhanced in its POS acquirer ! processing to map MCCs in the 3xxx range to ! appropriate card acceptor business code values for ! inclusion in bit 26 in request and advice messages. ! 4. Acquirer Support for Contactless Transactions :- ! The interface was enhanced in its POS acquirer ! processing to set the appropriate indicators in ! bit 22 for contactless (Expresspay) transactions, ! using the Point of Service Entry Mode in the PSTM ! and the EMV Status token (Token ID = "B4"). ! Procs Modified: sem^frmt^xrqst^emv^to^b24^tkn ! sim^frmt^b24^tkn^to^sem^emv ! Dependency: Apply fixes to AEGNS and AEGNEMVS. Run Make. ! Replace AEGNUPDT. ! Reference: WO #007731 #ADD 00158 SIM^FRMT^B24^TKN^TO^SEM^EMV sem.pt^svc^data^cde.crd^data^input^cap ':=' "5"; #DELETE 00159 /00161 SIM^FRMT^B24^TKN^TO^SEM^EMV #ADD 00162L08 SIM^FRMT^B24^TKN^TO^SEM^EMV if emv^stat^tkn.pt^srv^entry^mde = "07" then begin sem.pt^svc^data^cde.crd^data^input^mde ':=' "5"; end else #ADD 00166H06 SIM^FRMT^B24^TKN^TO^SEM^EMV if emv^stat^tkn.last^emv^stat = "1" then begin if pstm.prod^id = pos^prod^id^d and ( pstm.pin^tries = "Z" or pstm.pin^tries = "z" ) then begin sem.pt^svc^data^cde.crdhldr^auth^method ':=' "1"; sem.pt^svc^data^cde.crdhldr^auth^entity ':=' "1"; end; sem.pt^svc^data^cde.crd^data^output^cap ':=' "3"; end; #ADD 00554N09 SEM^FRMT^XRQST^EMV^TO^B24^TKN aeips^crypto^valid = "00" or sem.rsrvd^62^prvt^aegn.fraud^inds^var. aeips^crypto^valid = "07" then #DELETE 00554N0A SEM^FRMT^XRQST^EMV^TO^B24^TKN #ADD 00554P01 SEM^FRMT^XRQST^EMV^TO^B24^TKN aeips^crypto^valid = "01" or sem.rsrvd^62^prvt^aegn.fraud^inds^var. aeips^crypto^valid = "08" then #DELETE 00554P02/00554P03 SEM^FRMT^XRQST^EMV^TO^B24^TKN #ENDSCN = SW0J007 !#CMP2.28 01/06/20 AEGNEMVS6017 FIX SW60IAEG *** \NEW; OUTLEN 80; SECT "- " 1 ******************************************************************************** * * * IF YOU RECEIVE THIS ERROR MESSAGE * * *** ERROR **** (2061) FILE IS NOT A VALID CMD FILE * * CONTACT YOUR ACI REPRESENTATIVE FOR THE MOST RECENT FIX OBJECT * * DO NOT ALTER THIS FIX FILE TO FORCE APPLICATION * * * * THIS COMMAND FILE IS CREATED BY CMP PROGRAM TO BE USED IN FIX PROGRAM. * * THE LINES TO BE ADDED OR REPLACED SHOULD BE LESS THAN 71 CHARACTERS AND * * SHOULD NOT HAVE ANY SEQUENCE NUMBERS AT THE END. * * * * FILE ID VERSION * * OLD FILE: \OMA3T06.$ROOK.SW60IAEG.AEGNEMVS AEGNEMVS 6017 * * NEW FILE: \OMA3T06.$CKOUT.SW6DIAEG.AEGNEMVS AEGNEMVS 6017 * ******************************************************************************** #SCN = SW0O003 , FILEID = AEGNEMVS #VOLUME = $ROOK.SW60IAEG #FILE = AEGNEMVS #PRODUCTID = SW60IAEG #ENGINEER = *** #LANGUAGE = TAL #VERSION = 6017 #NEWVERSION = 6018 #ADD 00040Q0d ! 06JAN2020 jhas ! Symptom: AMEX GNS issuer Expresspay support. ! Problem: None. ! Fix: Bypass the processing that adds EMV data to DE 55 in ! an authorization response message sent to AMEX for ! contactless EMV transaction. ! Procs Modified: sem^frmt^xrqst^emv^to^b24^tkn ! sim^frmt^b24^tkn^to^xresp^emv ! Dependency: Apply fix to: ! BA60AFT: RQCPFS,SVCPFS ! BA60DDL: DDLFCPF,DDLGTSS ! BA60QDCV: DCVUTILS,DCVG ! PSSJQRTA: RTAUDCVG,RTAUDCVS ! SW60AEGN: AEGNS ! SW60IAEG: AEGNEMVS ! Run Make. ! Replace files: ! BA60LOGM: BADCVUTL ! SW60AEGN : AEGNMAN and AEGNUPDT. ! Reference: WO #009115. #ADD 00433 SEM^FRMT^XRQST^EMV^TO^B24^TKN if not ( emv^capable^term^d( sem ) or sem.pt^svc^data^cde.crd^data^input^cap = "5" ) then #DELETE 00434 SEM^FRMT^XRQST^EMV^TO^B24^TKN #ADD 00828 SIM^FRMT^B24^TKN^TO^XRESP^EMV if sem.pt^svc^data^cde.crd^prsn = "X" then begin ! ! ! EMV data must not be returned in responses to contactless ! ! transactions, so no EMV processing is necessary ! ! ! call integer^ascii^( sem.emv^data^aegn.lgth, emv^data^lgth ); return true; end; #ENDSCN = SW0O003 !#CMP2.28 02/15/21 AEGNEMVS6018 FIX SW60IAEG *** \NEW; OUTLEN 80; SECT "- " 1 ******************************************************************************** * * * IF YOU RECEIVE THIS ERROR MESSAGE * * *** ERROR **** (2061) FILE IS NOT A VALID CMD FILE * * CONTACT YOUR ACI REPRESENTATIVE FOR THE MOST RECENT FIX OBJECT * * DO NOT ALTER THIS FIX FILE TO FORCE APPLICATION * * * * THIS COMMAND FILE IS CREATED BY CMP PROGRAM TO BE USED IN FIX PROGRAM. * * THE LINES TO BE ADDED OR REPLACED SHOULD BE LESS THAN 71 CHARACTERS AND * * SHOULD NOT HAVE ANY SEQUENCE NUMBERS AT THE END. * * * * FILE ID VERSION * * OLD FILE: \OMA3T06.$ROOK.SW60IAEG.AEGNEMVS AEGNEMVS 6018 * * NEW FILE: \OMA3T06.$CKOUT.SW6DIAEG.AEGNEMVS AEGNEMVS 6018 * ******************************************************************************** #SCN = SW0P019 , FILEID = AEGNEMVS #VOLUME = $ROOK.SW60IAEG #FILE = AEGNEMVS #PRODUCTID = SW60IAEG #ENGINEER = *** #LANGUAGE = TAL #VERSION = 6018 #NEWVERSION = 6019 #ADD 00040R0L ! 15FEB2021 velsamv ! Symptom: AMEX GNS 21.Q1 Enhancements. ! Problem: None ! Fix: Modified the interface to support the following: ! 1. Card Acceptor Name and Location. ! 2. ATM EMV contactless transaction ! Proc modified: sim^frmt^b24^tkn^to^sem^emv ! Dependency: Apply fixes to: ! SW60AEGN: AEGNS ! SW60IAEG: AEGNEMVS ! Replace files: ! SW60AEGN: AEGNUPDT ! Reference: WO #009304. #ADD 00162Q03 SIM^FRMT^B24^TKN^TO^SEM^EMV sem.pt^svc^data^cde.crd^prsn ':=' "X"; #ENDSCN = SW0P019 !#CMP2.28 09/13/24 AEGNEMVS6019 FIX SW60IAEG *** \NEW; OUTLEN 80; SECT "- " 1 ******************************************************************************** * * * IF YOU RECEIVE THIS ERROR MESSAGE * * *** ERROR **** (2061) FILE IS NOT A VALID CMD FILE * * CONTACT YOUR ACI REPRESENTATIVE FOR THE MOST RECENT FIX OBJECT * * DO NOT ALTER THIS FIX FILE TO FORCE APPLICATION * * * * THIS COMMAND FILE IS CREATED BY CMP PROGRAM TO BE USED IN FIX PROGRAM. * * THE LINES TO BE ADDED OR REPLACED SHOULD BE LESS THAN 71 CHARACTERS AND * * SHOULD NOT HAVE ANY SEQUENCE NUMBERS AT THE END. * * * * FILE ID VERSION * * OLD FILE: \OMA3T06.$ROOK.SW60IAEG.AEGNEMVS AEGNEMVS 6019 * * NEW FILE: \OMA3T06.$CKOUT.SW6DIAEG.AEGNEMVS AEGNEMVS 6019 * ******************************************************************************** #SCN = SW0S286 , FILEID = AEGNEMVS #VOLUME = $ROOK.SW60IAEG #FILE = AEGNEMVS #PRODUCTID = SW60IAEG #ENGINEER = *** #LANGUAGE = TAL #VERSION = 6019 #NEWVERSION = 6020 #ADD 00040S0E ! 13SEP2024 jayaprm ! Symptom: B5 token populated with zeroes for declined transaction. ! Problem: The AMEX GNS network declines the transaction with ! IAD length value zero. Hence in response the B5 token ! added to the internal message has zeroes for declined ! transaction. ! Fix: Modified the interface to not to add the B5 token ! to the internal message when the IAD length has value ! zero in the response message. ! Proc modified: sem^frmt^xresp^emv^to^b24^tkn ! Dependency: Apply fixes to: ! SW60IAEG: AEGNEMVS ! Reference: Case #3661992 #ADD 01028G00 SEM^FRMT^XRESP^EMV^TO^B24^TKN if ( sem.emv^data^aegn.resp.iss^auth^data.lgth = " " or sem.emv^data^aegn.resp.iss^auth^data.lgth = 0 ) and #DELETE 01028G01 SEM^FRMT^XRESP^EMV^TO^B24^TKN #ENDSCN = SW0S286 !#CMP2.28 11/01/24 AEGNEMVS6020 FIX SW60IAEG *** \NEW; OUTLEN 80; SECT "- " 1 ******************************************************************************** * * * IF YOU RECEIVE THIS ERROR MESSAGE * * *** ERROR **** (2061) FILE IS NOT A VALID CMD FILE * * CONTACT YOUR ACI REPRESENTATIVE FOR THE MOST RECENT FIX OBJECT * * DO NOT ALTER THIS FIX FILE TO FORCE APPLICATION * * * * THIS COMMAND FILE IS CREATED BY CMP PROGRAM TO BE USED IN FIX PROGRAM. * * THE LINES TO BE ADDED OR REPLACED SHOULD BE LESS THAN 71 CHARACTERS AND * * SHOULD NOT HAVE ANY SEQUENCE NUMBERS AT THE END. * * * * FILE ID VERSION * * OLD FILE: \OMA3T06.$ROOK.SW60IAEG.AEGNEMVS AEGNEMVS 6020 * * NEW FILE: \OMA3T06.$CKOUT.SW6DIAEG.AEGNEMVS AEGNEMVS 6020 * ******************************************************************************** #SCN = SW0S321 , FILEID = AEGNEMVS #VOLUME = $ROOK.SW60IAEG #FILE = AEGNEMVS #PRODUCTID = SW60IAEG #ENGINEER = *** #LANGUAGE = TAL #VERSION = 6020 #NEWVERSION = 6021 #ADD 00040T0E ! 01NOV2024 MohanD ! Symptom: Case #03674612 - AMEX enhanced PSD2 RTS Requirements ! for SCA in the EEA. ! Problem: None. ! Fix: Interface has been enhanced in support of the following: ! - Added Logic to process the ARC in a declined response ! for a POS contactless transaction, if the Issuer ! Authentication Data is present. ! Proc Modified: sem^frmt^xresp^emv^to^b24^tkn ! Dependency: Apply fix to ! SW60IAEG : AEGNEMVS ! Run Make. ! Reference: Case #3674612 #ADD 01009 SEM^FRMT^XRESP^EMV^TO^B24^TKN int ofst; #ADD 01018 SEM^FRMT^XRESP^EMV^TO^B24^TKN string err^flg := " "; #ADD 01029 SEM^FRMT^XRESP^EMV^TO^B24^TKN if pstm.prod^id = pos^prod^id^d and pstm.pt^srv^entry^mde = "07" and ( sem.act^cde = "100" or sem.act^cde = "130" ) then begin if sem.emv^data^aegn.resp. iss^auth^data.arpc^resp^cde = "13" and pstm.pt^srv^entry^mde.byte[ 2 ] = "1" then begin ! ! request online PIN entry ! movd( pstm.tran.resp^cde, "096"); movd( err^flg, "5"); end else if sem.emv^data^aegn.resp. iss^auth^data.arpc^resp^cde = "13" or sem.emv^data^aegn.resp. iss^auth^data.arpc^resp^cde = "12" then begin ! ! use another interface so SCA can be applied ! movd( pstm.tran.resp^cde, "096"); movd( err^flg, "6"); end; if err^flg <> " " then begin tkn^lgth := 0; ofst := $offset( pstm.srvcs ) + ( pstm.num^services * $len( pstm.srvcs ) ); call hiswtkn^set^ps50^tkn( pstm, max^msg^lgth^l, ofst, false, tkn^lgth, pstm.data^flag, err^flg, !rte^grp!, !card^vrfy^flg! ); end; end; #ENDSCN = SW0S321